import time

import schedule
from multiprocessing import Process
from spiders.run_spider import RunSpider
from validator.proxy_test import ProxyTester
from validator.proxy_api import ProxyApi

"""
实现代理池的启动入口
开启三个进程。分别用于启动爬虫，检测代理池，启动WEB服务，统一到一起
"""


def run():
    # 1.定义一个列表，用于存储要启动的进程
    process_list = []
    # 2.创建 启动爬虫 的进程,添加到列表中
    process_list.append(Process(target=RunSpider.start))
    # 3.创建 启动检测 的进程,添加到列表中
    process_list.append(Process(target=ProxyTester.start))
    # 4.创建 启动WEB服务 的进程,添加到列表中
    process_list.append(Process(target=ProxyApi.start))
    # 5.遍历进程列表，启动所有进程
    for process in process_list:
        # print(process)
        # 设置守护进程
        process.daemon = True
        process.start()
    # 6.遍历进程列表,让主进程等待子进程的完成
    for process in process_list:
        process.join()


if __name__ == '__main__':
    run()

